/*
Source Code License Agreement
Copyright (c) 2007, Matthew D. Wright. All rights reserved.

Matthew D. Wright grants to you a perpetual, worldwide, non-exclusive,
no-charge, royalty-free, irrevocable copyright license, to reproduce,
prepare derivative works of, publicly display, publicly perform, and
distribute this source code and such derivative works in source or
object code form without any attribution requirements.

The name "Matthew D. Wright" must not be used to endorse or promote 
products derived from the source code without prior written permission.

You agree to indemnify, hold harmless and defend Matthew D. Wright from 
and against any loss, damage, claims or lawsuits, including attorney's fees 
that arise or result from your use or distribution of the source code.

THIS SOURCE CODE IS PROVIDED "AS IS" AND "WITH ALL FAULTS", WITHOUT
ANY TECHNICAL SUPPORT OR ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING,
BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ALSO, THERE IS NO WARRANTY OF
NON-INFRINGEMENT, TITLE OR QUIET ENJOYMENT. IN NO EVENT SHALL MACROMEDIA
OR ITS SUPPLIERS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOURCE CODE, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/

package net.nobien.webapis.google.blogger
{
	
	import net.nobien.webapis.google.blogger.Author;
	import net.nobien.webapis.google.blogger.Contributor;
	
	/**
	 * The BlogPost class abstracts a Blogger blog post.
	 */
	public class BlogPost
	{
		private var _id:String;
		private var _blogID:String;
		private var _published:Date;
		private var _updated:Date;
		private var _draft:Boolean = false;
		private var _title:String;
		private var _content:String;
		private var _contentType:String;
		private var _authors:Array = new Array();
		private var _contributors:Array = new Array();
		private var _categories:Array = new Array();
		private var _alternateURL:String;
		private var _preferredURL:String;
		private var _editEndPoint:String;
		private var _comments:Array;
		private var _commentFeedURL:String;
		private var _commentPostEndPoint:String;
		private var _commentAmt:int;
		
		/**
		 * Constructs a new BlogPost object.
		 */
		public function BlogPost()
		{
			
		}
		
		/**
		 * The blog post ID.
		 */
		public function get id():String
		{
			return _id;
		}
		
		public function set id( v:String ):void
		{
			_id = v;
		}
		
		/**
		 * The blog post's blog ID.
		 */
		public function get blogID():String
		{
			return _blogID;
		}
		
		public function set blogID( v:String ):void
		{
			_blogID = v;
		}
		
		/**
		 * The blog post's preferred URL.
		 */
		public function get preferredURL():String
		{
			return _preferredURL;
		}
		
		public function set preferredURL( v:String ):void
		{
			_preferredURL = v;
		}
		
		/**
		 * The blog post's alternate URL.
		 */
		public function get alternateURL():String
		{
			return _alternateURL;
		}
		
		public function set alternateURL( v:String ):void
		{
			_alternateURL = v;
		}
		
		/**
		 * The blog post's edit URL.
		 */
		public function get editEndPoint():String
		{
			return _editEndPoint;
		}
		
		public function set editEndPoint( v:String ):void
		{
			_editEndPoint = v;
		}
		
		public function get comments():Array
		{
			return _comments;
		}
		
		public function set comments( v:Array ):void
		{
			_comments = v;
		}
		
		/**
		 * The blog post's comment feed URL.
		 */
		public function get commentFeedURL():String
		{
			return _commentFeedURL;
		}
		
		public function set commentFeedURL( v:String ):void
		{
			_commentFeedURL = v;
		}
		
		/**
		 * The blog post's comment POST URL.
		 */
		public function get commentPostEndPoint():String
		{
			return _commentPostEndPoint;
		}
		
		public function set commentPostEndPoint( v:String ):void
		{
			_commentPostEndPoint = v;
		}
		
		/**
		 * The amount of comments.
		 */
		public function get commentAmt():int
		{
			return _commentAmt;
		}
		
		public function set commentAmt( v:int ):void
		{
			_commentAmt = v;
		}
		
		/**
		 * The blog post's title.
		 */
		public function get title():String
		{
			return _title;
		}
		
		public function set title( v:String ):void
		{
			_title = v;
		}
		
		/**
		 * Flag if the blog post is a draft.
		 */
        public function get draft():Boolean
        {
        	return _draft;
        }
        
        public function set draft( v:Boolean ):void
        {
        	_draft = v;
        }
        
        /**
		 * The blog post's content.
		 */
		public function get content():String
		{
			return _content;
		}
		
		public function set content( v:String ):void
		{
			_content = v;
		}
		
		/**
		 * The blog post's content type.
		 */
		public function get contentType():String
		{
			return _contentType;
		}
		
		public function set contentType( v:String ):void
		{
			_contentType = v;
		}
		
		/**
		 * The blog post's authors.
		 */
		public function get authors():Array
		{
			return _authors;
		}
		
		public function set authors( v:Array ):void
		{
			_authors = v;
		}
		
		/**
		 * The blog post's contributors.
		 */
		public function get contributors():Array
		{
			return _contributors;
		}
		
		public function set contributors( v:Array ):void
		{
			_contributors = v;
		}
		
		/**
		 * The blog post's categories.
		 */
		public function get categories():Array
		{
			return _categories;
		}
		
		public function set categories( v:Array ):void
		{
			_categories = v;
		}
		
		/**
		 * The date the blog post was published.
		 */
		public function get published():Date
		{
			return _published;
		}
		
		public function set published( v:Date ):void
		{
			_published = v;
		}
		
		/**
		 * The date the blog post was update.
		 */
		public function get updated():Date
		{
			return _updated;
		}
		
		public function set updated( v:Date ):void
		{
			_updated = v;
		}
		
	}
	
	
}